package com.jp.knowledge.my.activity;

import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.design.widget.TabLayout;
import android.support.v4.app.ActivityCompat;
import android.view.View;
import android.widget.RelativeLayout;

import com.google.gson.JsonObject;
import com.jiayen.util.ToasUtil;
import com.jp.knowledge.R;
import com.jp.knowledge.activity.TeamCircleConstactsActivity;
import com.jp.knowledge.http.HttpHelper;
import com.jp.knowledge.model.IModel;
import com.jp.knowledge.model.UserData;
import com.jp.knowledge.my.adapter.ColleagueContactsAdapter;
import com.jp.knowledge.my.model.ColleagueContactsModel;
import com.jp.knowledge.my.model.OrganizaModel;
import com.jp.knowledge.my.util.ContactUtil;
import com.jp.knowledge.my.util.PinyinComparator;
import com.jp.knowledge.util.JsonUtil;
import com.timehop.stickyheadersrecyclerview.StickyRecyclerHeadersDecoration;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * 通讯录
 *
 * @author gzejia 978862664@qq.com
 */
public class ColleagueContactsActivity extends TeamCircleConstactsActivity  {

//	private static final int REQUEST_CODE = 0x01;
//	private static final int REQUEST_CONTACTS_PREMISSION = 0x02;
//
//	private View notPremissionView;
//
//	private List<ColleagueContactsModel> allContacts;
//	private List<ColleagueContactsModel> searchContacts;
//	private ColleagueContactsAdapter adapter;
//	private UserData userData;
//	private List<OrganizaModel> companys;
//
//
//	@Override
//	protected void initOther() {
//
//		userData =application.getUserData();
//		if (userData == null) {
//			ToasUtil.toast(mContext, "请先登录!");
//			finish();
//			return;
//		}
//		companys =userData.getCompanyList();
//		if (companys == null || companys.size() == 0) {
//			ToasUtil.toast(mContext, "尚未加入任何组织!");
//			finish();
//			return;
//		}
//
//		super.initOther();
//		notPremissionView = View.inflate(this, R.layout.colleague_contacts_bg, null);
//		((RelativeLayout)contentView).addView(notPremissionView);
//		RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
//				RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
//		layoutParams.addRule(RelativeLayout.BELOW, R.id.top_bar);
//		notPremissionView.setLayoutParams(layoutParams);
//		notPremissionView.setVisibility(View.GONE);
//
//		topName.setText("邀请成员");
//		findViewById(R.id.bottom_bar).setVisibility(View.GONE);
//
//		allContacts = new ArrayList<>();
//		searchContacts = new ArrayList<>();
//
//		adapter = new ColleagueContactsAdapter(this, new ArrayList<ColleagueContactsModel>());
//		// 添加粘性头部视图
//		StickyRecyclerHeadersDecoration headersDecor =
//				new StickyRecyclerHeadersDecoration(adapter);
//		constactsListRv.addItemDecoration(headersDecor);
//		constactsListRv.setAdapter(adapter);
//
//		adapter.setInviteLister(new ColleagueContactsAdapter.InviteLister() {
//			@Override
//			public void invite(ColleagueContactsModel mode) {
//				JsonObject param = new JsonObject();
//				OrganizaModel company = companys.get(tabLayout.getSelectedTabPosition());
//				int type =company.getCompanyType();
//				param.addProperty("token", HttpHelper.token);
//				param.addProperty("phone",mode.getPhone());
//				param.addProperty("id", type==2?company.getClassId():company.getCompanyId());
//				param.addProperty("type",type);
//				HttpHelper.getInstance(mContext).invitation(param, REQUEST_CODE, ColleagueContactsActivity.this);
//				ToasUtil.toast(mContext, "邀请信息发送中...");
//			}
//		});
//
//		tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
//			@Override
//			public void onTabSelected(TabLayout.Tab tab) {
//				getContactsData();
//			}
//
//			@Override
//			public void onTabUnselected(TabLayout.Tab tab) {
//
//			}
//
//			@Override
//			public void onTabReselected(TabLayout.Tab tab) {
//
//			}
//		});
//	}
//
//	@Override
//	protected void initTabLayout() {
//		for (OrganizaModel company: companys) {
//			tabLayout.addTab(tabLayout.newTab().setText(company.getCompanyFullName()));
//		}
//	}
//
//	@Override
//	protected void letterChanged(String letter, int position, float y) {
//		for(int i = 0; i < searchContacts.size(); i++){
//			if(searchContacts.get(i).getRemark().charAt(0) == letters.get(position).charAt(0)){
//				moveToPosition(i);
//				return;
//			}
//		}
//	}
//
//	@Override
//	protected void editTextChange() {
//		String searchStr = constactEdit.getText().toString().trim();
//		searchContacts.clear();
//		if(searchStr.length() == 0){
//			searchContacts.addAll(allContacts);
//		} else{
//			for(ColleagueContactsModel constactsModel : allContacts){
//				String name = constactsModel.getName();
//				if(name == null)
//					name = constactsModel.getPhone();
//				if(name == null)
//					name = "";
//				if(name.contains(searchStr))
//					searchContacts.add(constactsModel);
//			}
//		}
//		adapter.updateAdapter(searchContacts);
//	}
//
//	@Override
//	public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
//		super.onRequestPermissionsResult(requestCode, permissions, grantResults);
//		if (requestCode == REQUEST_CONTACTS_PREMISSION && grantResults.length > 0){
//			if(grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//				getContactsData();
//			} else{
//				loading.cancel();
//				notPremissionView.setVisibility(View.VISIBLE);
//				ToasUtil.toast(this, "抱歉，您没有权限访问手机通讯录");
//			}
//		}
//	}
//
//	@Override
//	protected void getData() {
//		if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
//				&& ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS)
//				!= PackageManager.PERMISSION_GRANTED) {
//			ActivityCompat.requestPermissions(this,
//					new String[]{Manifest.permission.READ_CONTACTS},
//					REQUEST_CONTACTS_PREMISSION);
//			return;
//		}
//		getContactsData();
//	}
//
//	private void getContactsData(){
//
//		List<ContactUtil.ContactModel> contactModels = ContactUtil.getContactUtil().getContactInfo(this);
//		// 使用 set 去除重复号码
//		Set<String> phoneNumbers = new HashSet<>();
//		for(int i = 0; i < contactModels.size(); i++){
//			if(contactModels.get(i).getPhoneModels() == null)
//				continue;
//			for(int j = 0; j < contactModels.get(i).getPhoneModels().size(); j++) {
//				phoneNumbers.add(contactModels.get(i).getPhoneModels().get(j).getPhoneNumber().replaceAll("-", ""));
//			}
//		}
//		if(phoneNumbers.size() == 0)
//			return;
//		PhoneModel phoneModel = new PhoneModel();
//		phoneModel.setToken(HttpHelper.token);
//		phoneModel.setPhones(new ArrayList<String>(phoneNumbers));
//
//		loading.show();
//		HttpHelper.getInstance(this).phonebook(
//				JsonUtil.getInstance().entityToJson(phoneModel), REQUEST_CODE, this);
//	}
//
//	@Override
//	public void onNext(IModel data, int requestType) {
//		if(requestType != REQUEST_CODE)
//			return;
//		int  code  = data.getErrcode();
//		if(code==0)  {
//			allContacts = data.getList(ColleagueContactsModel.class);
//			if(allContacts!=null)
//				for(ColleagueContactsModel model : allContacts){
//					if(model.getName() == null || model.getName().trim().length() == 0)
//						model.setName(model.getPhone());
//					String remark = model.getName();
//					remark = PinyinComparator.getPinyin(remark).toUpperCase();
//					if(!(remark.charAt(0) >= 'A' && remark.charAt(0) <= 'Z')){
//						remark = '#' + remark;
//					}
//					model.setRemark(remark);
//				}
//			searchContacts.clear();
//			searchContacts.addAll(allContacts);
//			adapter.updateAdapter(searchContacts);
//
//			loading.cancel();
//		}else {
//			ToasUtil.toast(mContext,data.getMessage());
//		}
//
//	}
//
//	private class PhoneModel{
//		private String token;
//		private List<String> phones;
//
//		public String getToken() {
//			return token;
//		}
//
//		public void setToken(String token) {
//			this.token = token;
//		}
//
//		public List<String> getPhones() {
//			return phones;
//		}
//
//		public void setPhones(List<String> phones) {
//			this.phones = phones;
//		}
//	}
}
